// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;

int n, m;
int dx[4] = { 0, 0, 1, -1 }, dy[4] = { 1, -1, 0, 0 };
int step;
bool vis[101][101];

//void dfs(vector<vector<int>>& v, int i, int j, int& step)
//{
//    if (vis[i][j] != false) return;
//
//    vis[i][j] = true;
//
//    for (int k = 0; k < 4; k++)
//    {
//        int x = i + dx[k], y = j + dy[k];
//        if (x >= 0 && x < n && y >= 0 && y < m && v[x][y] < v[i][j] && vis[x][y] == false)
//        {
//            ++step;
//            dfs(v, x, y, step);
//        }
//    }
//}
//
//int main()
//{
//    cin >> n >> m;
//    vector<vector<int>> v(n, vector<int>(m, 0));
//    memset(vis, 0, sizeof vis);
//
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//        {
//            cin >> v[i][j];
//        }
//
//    int ret = 0;
//
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//        {
//            step = 0;
//            dfs(v, i, j, step);
//            if (step > ret) ret = step;
//        }
//
//    cout << ret;
//
//    return 0;
//}